#include "ProcessPool.hpp"

int main()
{
    // 这个代码，有一个藏得比较深的bug --- TODO
    // 1.创建进程池对象
    // 在构造函数中调用TaskManager类中的Register函数，并指定注册任务(在TashManager类中的vector<tast_t> _tasks成员添加函数指针)
    ProcessPool pp(gdefaultnum);

    // 2.启动进程池,此时建立管道，但是父进程还没有给子进程发送任务码，子进程的read为阻塞状态
    pp.Start();

    // 3.自动派发任务
    int cnt = 10;
    while(cnt--)
    {
        // 父进程给子进程发送任务码
        pp.Run();
        sleep(1);
    }

    // 4.回收，结束进程池
    pp.Stop();
    return 0;
}